Skip to content

Feat: PSR-7 Uri input/output and RouteBuilder#5

Merged
ralflang merged 5 commits into
FRAMEWORK_6_0from
feat/multi-path-routes
Mar 12, 2026
Merged

Feat: PSR-7 Uri input/output and RouteBuilder#5
ralflang merged 5 commits into
FRAMEWORK_6_0from
feat/multi-path-routes

Conversation

@ralflang
Copy link
Copy Markdown
Member

feat: PSR-style RouteBuilder and PSR-7 Uri interfaces

Modernize Routes encoding to match contemporary PHP routers (Symfony,
Laravel, FastRoute). Remove UTF-8→ISO-8859-1 conversion, rely on PHP 8 native UTF-8 support.
All routes now get an automatically generated name if no name was provided.
test(routes): add comprehensive PSR-style API test coverage

feat: Add native PSR-7 UriInterface support for modern PHP interoperability.
Routes now provides *Uri() methods returning Uri objects alongside
existing string methods, maintaining 100% backward compatibility.

Add secondary/legacy route feature that allows routes to match URLs
without being used for generation. Useful for supporting alternative
or legacy URLs without polluting the Named Route space with duplicates.

Also provide a simple Route Builder interface for more robust route definition.
A new Route Analyzer tool detects some cases of unreachable routes through conflicts.

Design philosophy emphasizes no false positives. Incremental approach.
New features are only available in the src/ branch and through the PSR-7 request interface.
Legacy Horde_Controller interface is for BC only.
Modernize Routes encoding to match contemporary PHP routers (Symfony,
Laravel, FastRoute). Remove UTF-8→ISO-8859-1 conversion, rely on PHP 8 native UTF-8 support.
All routes now get an automatically generated name if no name was provided.
test(routes): add comprehensive PSR-style API test coverage

feat: Add native PSR-7 UriInterface support for modern PHP interoperability.
Routes now provides *Uri() methods returning Uri objects alongside
existing string methods, maintaining 100% backward compatibility.
@ralflang ralflang merged commit 118bba4 into FRAMEWORK_6_0 Mar 12, 2026
1 check passed
ralflang added a commit that referenced this pull request Mar 12, 2026
Release version 3.0.0-alpha8

test: convert leftover secondary route tests to PSR-style API
Feat: PSR-7 Uri input/output and RouteBuilder (#5)
feat(routes): Secondary Routes support and Route Analyzer
fix: static analyzer found potentially undefined variables
Merge pull request #2 from horde/feat/matcher-environ-psr7
feat(matcher): auto-set Request Method Verb from PSR-7 request
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant